package org.example.projecttwo.service.Imessage;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.example.projecttwo.entity.Message;

import java.util.List;

/**
 * <p>
 * 消息表 服务类
 * </p>
 *
 * @author nn
 * @since 2025-11-01
 */
public interface IMessageService extends IService<Message> {

    /**
     * 分页查询消息列表（支持状态筛选、接收范围筛选、关键词筛选）
     *
     * @param page        分页参数
     * @param status      状态
     * @param targetScope 接收范围
     * @param keyword     搜索关键字
     * @param startTime   开始时间
     * @param endTime     结束时间
     * @return 分页结果
     */
    IPage<Message> pageBy(Page<Message> page, Integer status, Integer targetScope, String keyword, String startTime, String endTime);

    /**
     * 更新消息状态
     * @param id 消息ID
     * @param status 状态
     */
    void updateStatus(Long id, Integer status);

    /**
     * 批量更新消息状态
     * @param ids 消息ID列表
     * @param status 状态
     */
    void batchUpdateStatus(List<Long> ids, Integer status);
}
